<?php
/**
 * AjaxAction - родительский контроллер для модуля ajax приложения,
 *              расширяет функционал контроллера Zend_Controller_Action
 *              и все контроллеры модуля при необходимости
 *              иметь расширенный функционал специфический для данного
 *              модуля могут наследоваться от этого контроллера и
 *              обращаться к его методам.
 * 
 * LICENSE: Free to use license
 *
 * @copyright   2009
 * @author      Яковлев Иван <Yak1980@list.ru | Best4u.mail@gmail.com>
 * @version     $id:$
 * @link
 * @since
 */
class System_Controller_AjaxAction extends Zend_Controller_Action
{
    /**
     * __call() - магический метод срабатывает если в контроллер передан
     *            не существующий метод.
     */
    public function __call($methodname, $arg)
    {
        $arg;
        $moduleName = $this->_request->getModuleName();
        $controllerName = $this->_request->getControllerName();
        
        // заносим в лог в файл
        $msg  = 'Попытка вызова не существующего метода: ' . $methodname . PHP_EOL;
        $msg .= 'Модуль: ' . $moduleName . PHP_EOL;
        $msg .= 'Контроллер: ' . $controllerName . PHP_EOL;
        $msg .= 'Переданные аргументы: ' . Zend_Json::encode($arg) . PHP_EOL;
        $msg .= 'ip: ' . $_SERVER['REMOTE_ADDR'];
        $msg .= ' hostname: ' . gethostbyaddr($_SERVER['REMOTE_ADDR']) . PHP_EOL;
        System_Logger::log($msg, 'warn', 'file', null, 'log.log');

        // редирект в зависимости от модуля и контроллера
        switch ($controller) {
            case 'value':
                ;
                break;

            default:
                $this->_helper->redirector->gotoSimple('index');
                break;
        }
    }
}

